<?php
/*
 * Copyright (c) 2017-2025 Tencent. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
namespace TencentCloud\Cwp\V20180228\Models;
use TencentCloud\Common\AbstractModel;

/**
 * DescribeRansomDefenseState response structure.
 *
 * @method integer getStrategyCount() Obtain Number of Activated Defense Policies
 * @method void setStrategyCount(integer $StrategyCount) Set Number of Activated Defense Policies
 * @method integer getMachineCount() Obtain Number of Protected Machines
 * @method void setMachineCount(integer $MachineCount) Set Number of Protected Machines
 * @method integer getSnapshotSize() Obtain Total snapshot capacity
 * @method void setSnapshotSize(integer $SnapshotSize) Set Total snapshot capacity
 * @method integer getRollBackTaskCount() Obtain Number of Backup Recovery Tasks
 * @method void setRollBackTaskCount(integer $RollBackTaskCount) Set Number of Backup Recovery Tasks
 * @method integer getProgressingSnapshotTaskCount() Obtain Number of Snapshot Creation Tasks in Progress
 * @method void setProgressingSnapshotTaskCount(integer $ProgressingSnapshotTaskCount) Set Number of Snapshot Creation Tasks in Progress
 * @method integer getProgressingRollBackTaskCount() Obtain Number of Backup Recovery Tasks in Progress
 * @method void setProgressingRollBackTaskCount(integer $ProgressingRollBackTaskCount) Set Number of Backup Recovery Tasks in Progress
 * @method integer getMachineTotal() Obtain Total Number of Machines
 * @method void setMachineTotal(integer $MachineTotal) Set Total Number of Machines
 * @method integer getStrategyTotal() Obtain Total number of policies
 * @method void setStrategyTotal(integer $StrategyTotal) Set Total number of policies
 * @method integer getBalanceStatus() Obtain Account Status. 0 - Without Overdue Payment; 1 - With Overdue Payment
 * @method void setBalanceStatus(integer $BalanceStatus) Set Account Status. 0 - Without Overdue Payment; 1 - With Overdue Payment
 * @method integer getBackupMachineCount() Obtain Number of Backed-Up Hosts
 * @method void setBackupMachineCount(integer $BackupMachineCount) Set Number of Backed-Up Hosts
 * @method string getRequestId() Obtain The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
 * @method void setRequestId(string $RequestId) Set The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
 */
class DescribeRansomDefenseStateResponse extends AbstractModel
{
    /**
     * @var integer Number of Activated Defense Policies
     */
    public $StrategyCount;

    /**
     * @var integer Number of Protected Machines
     */
    public $MachineCount;

    /**
     * @var integer Total snapshot capacity
     */
    public $SnapshotSize;

    /**
     * @var integer Number of Backup Recovery Tasks
     */
    public $RollBackTaskCount;

    /**
     * @var integer Number of Snapshot Creation Tasks in Progress
     */
    public $ProgressingSnapshotTaskCount;

    /**
     * @var integer Number of Backup Recovery Tasks in Progress
     */
    public $ProgressingRollBackTaskCount;

    /**
     * @var integer Total Number of Machines
     */
    public $MachineTotal;

    /**
     * @var integer Total number of policies
     */
    public $StrategyTotal;

    /**
     * @var integer Account Status. 0 - Without Overdue Payment; 1 - With Overdue Payment
     */
    public $BalanceStatus;

    /**
     * @var integer Number of Backed-Up Hosts
     */
    public $BackupMachineCount;

    /**
     * @var string The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
     */
    public $RequestId;

    /**
     * @param integer $StrategyCount Number of Activated Defense Policies
     * @param integer $MachineCount Number of Protected Machines
     * @param integer $SnapshotSize Total snapshot capacity
     * @param integer $RollBackTaskCount Number of Backup Recovery Tasks
     * @param integer $ProgressingSnapshotTaskCount Number of Snapshot Creation Tasks in Progress
     * @param integer $ProgressingRollBackTaskCount Number of Backup Recovery Tasks in Progress
     * @param integer $MachineTotal Total Number of Machines
     * @param integer $StrategyTotal Total number of policies
     * @param integer $BalanceStatus Account Status. 0 - Without Overdue Payment; 1 - With Overdue Payment
     * @param integer $BackupMachineCount Number of Backed-Up Hosts
     * @param string $RequestId The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
     */
    function __construct()
    {

    }

    /**
     * For internal only. DO NOT USE IT.
     */
    public function deserialize($param)
    {
        if ($param === null) {
            return;
        }
        if (array_key_exists("StrategyCount",$param) and $param["StrategyCount"] !== null) {
            $this->StrategyCount = $param["StrategyCount"];
        }

        if (array_key_exists("MachineCount",$param) and $param["MachineCount"] !== null) {
            $this->MachineCount = $param["MachineCount"];
        }

        if (array_key_exists("SnapshotSize",$param) and $param["SnapshotSize"] !== null) {
            $this->SnapshotSize = $param["SnapshotSize"];
        }

        if (array_key_exists("RollBackTaskCount",$param) and $param["RollBackTaskCount"] !== null) {
            $this->RollBackTaskCount = $param["RollBackTaskCount"];
        }

        if (array_key_exists("ProgressingSnapshotTaskCount",$param) and $param["ProgressingSnapshotTaskCount"] !== null) {
            $this->ProgressingSnapshotTaskCount = $param["ProgressingSnapshotTaskCount"];
        }

        if (array_key_exists("ProgressingRollBackTaskCount",$param) and $param["ProgressingRollBackTaskCount"] !== null) {
            $this->ProgressingRollBackTaskCount = $param["ProgressingRollBackTaskCount"];
        }

        if (array_key_exists("MachineTotal",$param) and $param["MachineTotal"] !== null) {
            $this->MachineTotal = $param["MachineTotal"];
        }

        if (array_key_exists("StrategyTotal",$param) and $param["StrategyTotal"] !== null) {
            $this->StrategyTotal = $param["StrategyTotal"];
        }

        if (array_key_exists("BalanceStatus",$param) and $param["BalanceStatus"] !== null) {
            $this->BalanceStatus = $param["BalanceStatus"];
        }

        if (array_key_exists("BackupMachineCount",$param) and $param["BackupMachineCount"] !== null) {
            $this->BackupMachineCount = $param["BackupMachineCount"];
        }

        if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) {
            $this->RequestId = $param["RequestId"];
        }
    }
}
